package com.si.sea_island.filter;//package com.zc.zc_service.filter;
//
//import com.aliyun.oss.ClientException;
//import com.aliyun.oss.OSS;
//import com.aliyun.oss.common.auth.*;
//import com.aliyun.oss.OSSClientBuilder;
//import com.aliyun.oss.OSSException;
//import com.aliyun.oss.model.*;
//
//public class Demo {
//    public static void main(String[] args) throws Exception {
//        // Endpoint以华东1（杭州）为例，其它Region请按实际情况填写。
//        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
//        // 从环境变量中获取访问凭证。运行本代码示例之前，请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
//        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
//        // 填写源Bucket名称。
//        String sourceBucketName = "bucket-zrjk-public-read-temporary";
//        // 填写源Object的完整路径。Object完整路径中不能包含Bucket名称。
//        String sourceKey = "zc/user/4/detailImages/4_22_EcCGtd_1720429563000.png";
//        // 填写与源Bucket处于同一地域的目标Bucket名称。
//        String destinationBucketName = "bucket-zrjk-public-read";
//        // 填写目标Object的完整路径。Object完整路径中不能包含Bucket名称。
//        String destinationKey = "zc/user/4/detailImages/4_22_EcCGtd_1720429563000.png";
//
//        // 创建OSSClient实例。
////        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
//        OSS ossClient = new OSSClientBuilder().build(endpoint, "LTAI4FvoZe4fFRwZsLHUQH4j", "K7ygUSWvXfG7aH2pjVzRE96HleF7og");
//
//        try {
//            // 创建CopyObjectRequest对象。
//            CopyObjectRequest copyObjectRequest = new CopyObjectRequest(sourceBucketName, sourceKey, destinationBucketName, destinationKey);
//
//            // 设置新的文件元信息。
//            ObjectMetadata meta = new ObjectMetadata();
//            meta.setContentType("text/plain");
//            // 指定CopyObject操作时是否覆盖同名目标Object。此处设置为true，表示禁止覆盖同名Object。
//            // meta.setHeader("x-oss-forbid-overwrite", "true");
//            // 指定拷贝的源地址。
//            // meta.setHeader(OSSHeaders.COPY_OBJECT_SOURCE, "/examplebucket/recode-test.txt");
//            // 如果源Object的ETag值和您提供的ETag相等，则执行拷贝操作，并返回200 OK。
//            // meta.setHeader(OSSHeaders.COPY_OBJECT_SOURCE_IF_MATCH, "5B3C1A2E053D763E1B002CC607C5****");
//            // 如果源Object的ETag值和您提供的ETag不相等，则执行拷贝操作，并返回200 OK。
//            // meta.setHeader(OSSHeaders.COPY_OBJECT_SOURCE_IF_NONE_MATCH, "5B3C1A2E053D763E1B002CC607C5****");
//            // 如果指定的时间等于或者晚于文件实际修改时间，则正常拷贝文件，并返回200 OK。
//            // meta.setHeader(OSSHeaders.COPY_OBJECT_SOURCE_IF_UNMODIFIED_SINCE, "2021-12-09T07:01:56.000Z");
//            // 如果源Object在指定时间后被修改过，则执行拷贝操作。
//            // meta.setHeader(OSSHeaders.COPY_OBJECT_SOURCE_IF_MODIFIED_SINCE, "2021-12-09T07:01:56.000Z");
//            // 指定设置目标Object元信息的方式。此处设置为COPY，表示复制源Object的元数据到目标Object。
//            // meta.setHeader(OSSHeaders.COPY_OBJECT_METADATA_DIRECTIVE, "COPY");
//            // 指定OSS创建目标Object时使用的服务器端加密算法。
//            // meta.setHeader(OSSHeaders.OSS_SERVER_SIDE_ENCRYPTION, ObjectMetadata.KMS_SERVER_SIDE_ENCRYPTION);
//            // 表示KMS托管的用户主密钥，该参数仅在x-oss-server-side-encryption为KMS时有效。
//            // meta.setHeader(OSSHeaders.OSS_SERVER_SIDE_ENCRYPTION_KEY_ID, "9468da86-3509-4f8d-a61e-6eab1eac****");
//            // 指定OSS创建目标Object时的访问权限，此处设置为Private，表示只有Object的拥有者和授权用户有该Object的读写权限，其他用户没有权限操作该Object。
//            // meta.setHeader(OSSHeaders.OSS_OBJECT_ACL, CannedAccessControlList.Private);
//            // 指定Object的存储类型。此处设置为Standard，表示标准存储类型。
//            // meta.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard);
//            // 指定Object的对象标签，可同时设置多个标签。
//            // meta.setHeader(OSSHeaders.OSS_TAGGING, "a:1");
//            // 指定设置目标Object对象标签的方式。此处设置为COPY，表示复制源Object的对象标签到目标Object。
//            // meta.setHeader(OSSHeaders.COPY_OBJECT_TAGGING_DIRECTIVE, "COPY");
//            copyObjectRequest.setNewObjectMetadata(meta);
//
//            // 复制文件。
//            CopyObjectResult result = ossClient.copyObject(copyObjectRequest);
//            System.out.println("ETag: " + result.getETag() + " LastModified: " + result.getLastModified());
//        } catch (OSSException oe) {
//            System.out.println("Caught an OSSException, which means your request made it to OSS, "
//                    + "but was rejected with an error response for some reason.");
//            System.out.println("Error Message:" + oe.getErrorMessage());
//            System.out.println("Error Code:" + oe.getErrorCode());
//            System.out.println("Request ID:" + oe.getRequestId());
//            System.out.println("Host ID:" + oe.getHostId());
//        } catch (ClientException ce) {
//            System.out.println("Caught an ClientException, which means the client encountered "
//                    + "a serious internal problem while trying to communicate with OSS, "
//                    + "such as not being able to access the network.");
//            System.out.println("Error Message:" + ce.getMessage());
//        } finally {
//            if (ossClient != null) {
//                ossClient.shutdown();
//            }
//        }
//    }
//}